package com.hongxun.project.assets.iLine.service;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import com.hongxun.project.assets.pBoxes.domain.PBoxes;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hongxun.project.assets.iLine.mapper.ILineMapper;
import com.hongxun.project.assets.iLine.domain.ILine;
import com.hongxun.project.assets.iLine.service.IILineService;
import com.hongxun.common.utils.text.Convert;

/**
 * 低压线路 服务层实现
 *
 * @author hongxun
 * @date 2019-03-19
 */
@Service
public class ILineServiceImpl implements IILineService {
    @Autowired
    private ILineMapper iLineMapper;

    /**
     * 查询低压线路信息
     *
     * @param id 低压线路ID
     * @return 低压线路信息
     */
    @Override
    public ILine selectILineById(String id) {
        return iLineMapper.selectILineById(id);
    }

    /**
     * 查询低压线路列表
     *
     * @param iLine 低压线路信息
     * @return 低压线路集合
     */
    @Override
    public List<ILine> selectILineList(ILine iLine) {
        return iLineMapper.selectILineList(iLine);
    }@Override
    public List<ILine> selectILineListNoThis(ILine iLine) {
        return iLineMapper.selectILineListNoThis(iLine);
    }

    /**
     * 新增低压线路
     *
     * @param iLine 低压线路信息
     * @return 结果
     */
    @Override
    public int insertILine(ILine iLine) {
        iLine.setId(UUID.randomUUID().toString());
        return iLineMapper.insertILine(iLine);
    }

    /**
     * 修改低压线路
     *
     * @param iLine 低压线路信息
     * @return 结果
     */
    @Override
    public int updateILine(ILine iLine) {
        return iLineMapper.updateILine(iLine);
    }

    /**
     * 删除低压线路对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteILineByIds(String ids) {
        return iLineMapper.deleteILineByIds(Convert.toStrArray(ids));
    }


//    @Override
//    public List<ILine> selectByqFom(String[] ids){
//        return iLineMapper.selectByqFom(ids);
//    }
    @Override
    public List<ILine> selectByqFom(Long userId , String id){
        return iLineMapper.selectByqFom(userId , id);
    }
    @Override
    public List<ILine> selectByqFomss(ILine iLine){
        return iLineMapper.selectByqFomss(iLine);
    }
    @Override
    public List<ILine> selectByqAll(ILine iLine){
        return iLineMapper.selectByqAll(iLine);
    }


    @Override
    public String getLinesByByqId(String byqId) {
        ILine l = new ILine();
        l.setByqId(byqId);
        List<ILine> lines = iLineMapper.selectILineList(l);
        List<String> ids = new ArrayList<>();
        for (ILine i : lines) {
            ids.add(i.getId());
        }
        return StringUtils.join(ids.toArray(), ",");
    }

    @Override
    public String getLinesNameByqId(String byqId) {
        return iLineMapper.getLinesNameByqId(byqId);
    }

    @Override
    public void insertOrReplaceOrDelete(List<ILine> iLines) {
        for (ILine d : iLines) {
            if (d.getDatastate().equals("删除")) {
                iLineMapper.deleteILineById(d.getId());
            } else {
                ILine pBoxes = iLineMapper.selectILineById(d.getId());
                if (pBoxes == null) {
                    iLineMapper.insertILine(d);
                } else {
                    iLineMapper.updateILine(d);
                }
            }
        }
    }

}
